package com.swanclouds.model.systems.builder.Oem.HuaWei;

import com.swanclouds.common.Buildable;

import java.util.Map;

/**
 * Oem.Huawei 创建逻辑盘
 * {
 *     "CapacityBytes":"capacity",
 *     "OptimumIOSizeBytes":"optsize",
 *     "Oem":{
 *         "Huawei":{
 *             "CreateCacheCadeFlag":"cacheCadeFlag",
 *             "Drives":[
 *                 "drives"
 *             ],
 *             "VolumeRaidLevel":"raidlevel",
 *             "VolumeName":"name",
 *             "DefaultReadPolicy":"df_read_policy",
 *             "DefaultWritePolicy":"df_write_policy",
 *             "DefaultCachePolicy":"df_cache_policy",
 *             "SpanNumber":"spnanum",
 *             "AccessPolicy":"access_policy",
 *             "DriveCachePolicy":"disk_cache_policy",
 *             "InitializationMode":"initmode",
 *             "BlockIndex":"blockindex"
 *         }
 *     }
 * }
 * @author 张立强
 *
 */
public interface HuaWeiCreateVolumeBuilder extends Buildable.Builder<HuaWeiCreateVolumeBuilder, HuaWeiCreateVolume> {

    /**
     * 容量大小
     * @param capacityBytes 容量大小
     * @return HuaWeiCreateVolumeBuilder
     */
    HuaWeiCreateVolumeBuilder CapacityBytes(Long capacityBytes);

    /**
     * 逻辑盘条带大小
     * @param optimumIOSizeBytes 带宽大小
     * @return HuaWeiCreateVolumeBuilder
     */
    HuaWeiCreateVolumeBuilder OptimumIOSizeBytes(Integer optimumIOSizeBytes);

    /**
     * @param oem Oem
     * @return HuaWeiCreateVolumeBuilder
     */
    HuaWeiCreateVolumeBuilder Oem(Map<String, Object> oem);
}
